package values.item
{
import com.adobe.serialization.json.JSON;

/**
 * PackItemTemplateValue
 * @author jliang
 *
 */
public class PackItemTemplateValue extends ItemTemplateValue
{
    //==========================================================================
    //  Constructor
    //==========================================================================
    public function PackItemTemplateValue()
    {
        super();
    }
    
    //==========================================================================
    //  Overridden methods: ItemTemplateValue
    //==========================================================================
    /**
     *   <items>
			<item key="mock_resource_1" num="10" />
			<item key="mock_resource_2" num="10" />
		 </items>
     */		
    [Data(type="field", mapping="params")]
    override public function set params(value:*):void
    {
        super.params = value;
    }
    
    override public function get dynamicClassRef():Class
    {
        return PackItemValue;
    }
    //==========================================================================
    //  Properties
    //==========================================================================	
    private var _items:Vector.<IItemValue>;
    
    public function get items():Vector.<IItemValue>
    {
        if (!_items)
        {
            _items = generateItems();
        }
        return _items;
    }
    
    public function generateItems():Vector.<IItemValue>
    {
        var temp:Vector.<IItemValue> = new Vector.<IItemValue>();
        
        var itemsDef:Array = JSON.decode(String(params.items));
        
        for each (var obj:Array in itemsDef)
        {
            var item:IItemValue = ItemValue.create(ItemTemplateValueList.getByKey(obj[0]), null, obj[1]);
            temp.push(item);
        }
        
        return temp;
    }
}
}




